#pragma once

#include <boost/unordered/concurrent_flat_map_fwd.hpp>

#include <cstdint>

namespace solar::internal::describe
{
    template <typename T>
    auto getPrivateMemberIndex()
        -> boost::unordered::concurrent_flat_map<std::string_view, std::uint64_t>*
    {
        static_assert(false, "Don't use this generic **unimplemented** version, include the "
                             "corresponding header for detailed implementation");
    }

    /// @returns const_expr::Map<std::string_view, std::uint64_t, N> (N is the size of the map)
    template <typename T> consteval auto getPrivateMemberIndexConst()
    {
        static_assert(false, "Don't use this generic **unimplemented** version, include the "
                             "corresponding header for detailed implementation");
    }
} // namespace solar
